package com.atguigu.tingshu.user.service;

import com.atguigu.tingshu.vo.base.user.UserCollect;
import com.atguigu.tingshu.vo.base.user.UserInfo;
import com.atguigu.tingshu.vo.base.user.UserPaidTrack;
import com.atguigu.tingshu.vo.user.UserCollectVo;
import com.atguigu.tingshu.vo.user.UserInfoVo;
import com.atguigu.tingshu.vo.user.UserSubscribeVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import me.chanjar.weixin.common.error.WxErrorException;

import java.util.List;
import java.util.Map;

public interface UserInfoService extends IService<UserInfo> {

    Map<String, String> wxLogin(String code) throws WxErrorException;

    UserInfoVo getUserInfo(Long userId);

    void updateUser(UserInfoVo userInfoVo);

    Page<UserSubscribeVo> findUserSubscribePage(Long userId, Long page, Long limit);

    boolean isSubscribe(Long userId, Long albumId);

    Page<UserCollectVo> findUserCollectPage(Long userId, Long page, Long limit);

    boolean isPayAlbum(Long albumId);

    List<UserPaidTrack> isPayTrack(Long albumId);

    UserCollect isCollect(Long trackId);

    void updateVipStatus();
}
